Mit Java 14 ist die dritte Java-Version seit dem letzten Release mit Long-Term-Support veröffentlicht worden. Java 12 und Java 13 wurden mit einer recht überschaubaren Anzahl an neuen Features ausgeliefert, für Java 14 ändert sich das. Insgesamt sind 16 JEPs Teil des JDK, unter anderem eine überarbeitete Version der Text Blocks und das Pattern Matching für instanceof.
Die Experten
Wir haben alle Neuerungen in Java 14 für Sie übersichtlich in einer Infografik zusammengefasst. Außerdem haben wir sechs Experten gebeten, uns eine persönliche Einschätzung zu geben: Was sind die Highlights in Java 14?
Java 14 – Experten-Check
JAX: Java 14 ist erschienen. Was ist euer Highlight des Releases?
Markus Günther: Mein persönliches Highlight ist die Einführung des Record-Konzepts (JEP-359). Records sind zwar noch ein Previewfeature in Java 14 und man muss das Feature explizit aktivieren, um es zu verwenden. Sie fügen sich aber logisch konsistent in das etablierte Java-Typsystem ein und bieten großes Potenzial. Mit dem aktuellen Release bedeutet das, dass man für einfache Datenhaltungsklassen nicht länger ausschweifenden Boilerplate-Code schreiben muss. Stattdessen kapselt man alle relevanten Attribute in Form eines Records und lässt den Compiler einen sinnvollen Defaultkonstruktor, Zugriffsmethoden zum Lesen und Schreiben der Attribute und einen Vertrag für equals und hashCode etc. generieren.
Auf den zweiten Blick erkennt man, dass Records den Weg für weitere, interessante Features ebnen: Records könnten beispielsweise wunderbar mit Pattern Matching in Form von Deconstruction Patterns zusammenspielen. Records sind also definitiv ein Konzept, das man im Auge behalten sollte.
Jens Schauder: Java 14 ist ein echtes Feuerwerk in meinen Augen. Es ist schwierig, sich zwischen Pattern Matching for instanceof, besseren NPEs, Switch Expressions und Records zu entscheiden. Wenn ich mich entscheiden muss, wähle ich das Pattern Matching for instanceof. Es ist etwas, was in der Codebasis von Spring Data wirklich praktisch wäre. Records finde ich eigentlich noch besser, aber sie sind als Preview gekennzeichnet.
Oliver B. Fischer: Das wohl bekannteste Feature der Textblöcke ist natürlich offensichtlich, weil es wesentlich zur positiven Developer Experience beitragen wird. Persönlich halte ich den Einstieg ins Pattern Matching mit JEP 303 Pattern Matching for instanceof für interessant, ebenso wie JEP 361 für Switch Expressions.
Dr. Heinz Kabutz: Von allen Funktionen, die in Java 14 enthalten sind, gefallen mir Records (JEP359) am besten. Eine interessante Neuerung ist jedoch ebenfalls, dass ConditionNode innerhalb des AbstractQueuedSynchronizer jetzt auch ein ManagedBlocker ist. Das bedeutet, dass die Bedingung von ReentrantLock gut mit dem ForkJoinPool und damit mit parallelen Streams zusammenspielt. LinkedBlockingQueue basiert auf ReentrantLock, und so arbeitet auch das gut zusammen.
Tim Riemer: Die Switch Expressions sind nun erwachsen, d. h. mit dem Java-14-Release vom Previewfeature zu einem Standardfeature erhoben worden. Ein weiteres Feature, von dem man als Entwickler in seiner täglichen Arbeit profitieren wird, ist JEP-358: Helpful NullPointerExceptions. Daneben sind Records und Pattern Matching for instanceof als interessante Previewfeatures dabei.
Michael Vitz: Dieses Mal finde ich es schwer, ein einzelnes Highlight zu nennen. Für die Sprache selbst ist es wohl das Preview von Records, die die Erstellung von klassischen Java Beans extrem erleichtern. Abseits hiervon finde ich die neuen NullPointerExceptions super, da mich diese sehr unaufgeregt und ohne, dass ich etwas tun muss, unterstützen.
Die Infografik
Die Experten
Tim Riemer ist als Softwarearchitekt mit Schwerpunkt Integration bei der FNT GmbH in Heiligenhaus beschäftigt. Neben seinem Job befasst er sich mit aktuellen Themen rund um Softwarearchitektur, Spring Boot, Build-Automation und Kotlin. Twitter: https://twitter.com/zordan_f
Jens Schauder ist leidenschaftlicher Softwareentwickler. Er arbeitet bei der T-Systems on site services GmbH als Senior Consultant. Besonders interessiert ihn das Thema Qualität in der Softwareentwicklung. In seiner Freizeit entwickelt er Degraph.
Michael Vitz verfügt über mehrjährige Erfahrung in der Entwicklung, Wartung und im Betrieb von Anwendungen auf der JVM. Aktuell beschäftigt er sich vor allem mit den Themen Microservices, Cloud-Architekturen, DevOps, Spring Framework und Clojure. Als Senior Consultant bei INNOQ hilft er Kunden, wartbare und wertschaffende Software zu entwickeln.
Oliver B. Fischer arbeitet bei der E-Post Development GmbH und organisiert die JUG Berlin-Brandenburg.
Markus Günther ist freiberuflicher Softwareentwickler und -architekt. Er beschäftigt sich aktuell mit Fast-Data-Architekturen und unterstützt seine Kunden bei der Umsetzung robuster, skalierfähiger Systeme.
Dr. Heinz Kabutz ist regelmäßiger Referent auf allen wichtigen Java-Konferenzen mit den Schwerpunkten Java Concurrency und Performance. Er schreibt den beliebten „The Java Specialists’ Newsletter“, der von Zehntausenden begeisterter Fans in über 140 Ländern gelesen wird